home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1995-11-19 | 11.5 KB | [TEXT/MMCC] |
view JSON data
|
view as text
|
open on a Mac
|
open on a PC
This file was processed as: MacBinary
(archive/macBinary).
You can browse this item here: Init_Z80.c
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, Sun Nov 19 14:08:29 1995, modified Sun Nov 19 14:08:29 1995, creator 'MMCC', type ASCII, 11023 bytes "Init_Z80.c" , at 0x2b8f 410 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MMCC] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0a 49 6e 69 74 5f 5a | 38 30 2e 63 00 00 00 00 |..Init_Z|80.c....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 4d 43 | 43 00 00 00 00 00 00 00 |.TEXTMMC|C.......|
|00000050| 00 00 00 00 00 2b 0f 00 | 00 01 9a ac d5 31 2d ac |.....+..|.....1-.|
|00000060| d5 31 2d 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.1-.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 10 3d 00 00 |........|.....=..|
|00000080| 2f 2a 09 5a 38 30 20 45 | 6d 75 6c 61 74 6f 72 0d |/*.Z80 E|mulator.|
|00000090| 09 43 6f 70 79 72 69 67 | 68 74 20 28 43 29 20 31 |.Copyrig|ht (C) 1|
|000000a0| 39 39 34 20 47 2e 57 6f | 69 67 6b 0d 09 0d 09 54 |994 G.Wo|igk....T|
|000000b0| 68 69 73 20 66 69 6c 65 | 20 69 73 20 70 61 72 74 |his file| is part|
|000000c0| 20 6f 66 20 4d 61 63 20 | 53 70 65 63 74 61 63 6c | of Mac |Spectacl|
|000000d0| 65 20 61 6e 64 20 69 74 | 20 69 73 20 66 72 65 65 |e and it| is free|
|000000e0| 20 73 6f 66 74 77 61 72 | 65 0d 09 53 65 65 20 61 | softwar|e..See a|
|000000f0| 70 70 6c 69 63 61 74 69 | 6f 6e 2e 63 20 66 6f 72 |pplicati|on.c for|
|00000100| 20 64 65 74 61 69 6c 73 | 0d 09 09 09 0d 09 54 68 | details|......Th|
|00000110| 69 73 20 70 72 6f 67 72 | 61 6d 20 69 73 20 64 69 |is progr|am is di|
|00000120| 73 74 72 69 62 75 74 65 | 64 20 69 6e 20 74 68 65 |stribute|d in the|
|00000130| 20 68 6f 70 65 20 74 68 | 61 74 20 69 74 20 77 69 | hope th|at it wi|
|00000140| 6c 6c 20 62 65 20 75 73 | 65 66 75 6c 2c 0d 09 62 |ll be us|eful,..b|
|00000150| 75 74 20 57 49 54 48 4f | 55 54 20 41 4e 59 20 57 |ut WITHO|UT ANY W|
|00000160| 41 52 52 41 4e 54 59 3b | 20 77 69 74 68 6f 75 74 |ARRANTY;| without|
|00000170| 20 65 76 65 6e 20 74 68 | 65 20 69 6d 70 6c 69 65 | even th|e implie|
|00000180| 64 20 77 61 72 72 61 6e | 74 79 20 6f 66 0d 09 4d |d warran|ty of..M|
|00000190| 45 52 43 48 41 4e 54 41 | 42 49 4c 49 54 59 20 6f |ERCHANTA|BILITY o|
|000001a0| 72 20 46 49 54 4e 45 53 | 53 20 46 4f 52 20 41 20 |r FITNES|S FOR A |
|000001b0| 50 41 52 54 49 43 55 4c | 41 52 20 50 55 52 50 4f |PARTICUL|AR PURPO|
|000001c0| 53 45 2e 20 20 0d 0d 09 | 31 36 2e 4a 61 6e 2e 39 |SE. ...|16.Jan.9|
|000001d0| 35 20 09 46 69 78 65 64 | 20 77 72 6f 6e 67 20 63 |5 .Fixed| wrong c|
|000001e0| 61 6c 63 75 6c 61 74 69 | 6f 6e 20 6f 66 20 70 61 |alculati|on of pa|
|000001f0| 72 69 74 79 20 66 6c 61 | 67 09 09 4b 49 4f 20 21 |rity fla|g..KIO !|
|00000200| 0d 09 32 38 2e 4a 61 6e | 2e 39 35 20 09 43 4d 44 |..28.Jan|.95 .CMD|
|00000210| 5f 50 52 4f 46 49 4c 45 | 09 09 09 09 09 09 09 4b |_PROFILE|.......K|
|00000220| 49 4f 20 21 0d 09 32 39 | 2e 4d 72 7a 2e 39 35 20 |IO !..29|.Mrz.95 |
|00000230| 09 53 65 70 61 72 61 74 | 65 64 20 74 68 69 73 20 |.Separat|ed this |
|00000240| 66 69 6c 65 20 66 72 6f | 6d 20 5a 38 30 2e 63 09 |file fro|m Z80.c.|
|00000250| 09 09 09 4b 49 4f 20 21 | 0d 09 30 31 2e 4e 6f 76 |...KIO !|..01.Nov|
|00000260| 2e 39 35 20 09 53 74 61 | 72 74 65 64 20 77 6f 72 |.95 .Sta|rted wor|
|00000270| 6b 20 6f 6e 20 70 61 67 | 65 64 20 6d 65 6d 6f 72 |k on pag|ed memor|
|00000280| 79 20 6d 6f 64 65 6c 20 | 61 67 61 69 6e 09 4b 49 |y model |again.KI|
|00000290| 4f 20 21 0d 2a 2f 0d 0d | 23 69 6e 63 6c 75 64 65 |O !.*/..|#include|
|000002a0| 09 22 6b 69 6f 2e 68 22 | 0d 23 69 6e 63 6c 75 64 |."kio.h"|.#includ|
|000002b0| 65 09 22 7a 38 30 2e 6f | 70 74 69 6f 6e 73 22 0d |e."z80.o|ptions".|
|000002c0| 23 69 6e 63 6c 75 64 65 | 09 22 7a 38 30 2e 68 22 |#include|."z80.h"|
|000002d0| 0d 23 69 6e 63 6c 75 64 | 65 09 22 61 70 70 6c 69 |.#includ|e."appli|
|000002e0| 63 61 74 69 6f 6e 2e 68 | 22 0d 23 69 6e 63 6c 75 |cation.h|".#inclu|
|000002f0| 64 65 09 22 71 75 69 63 | 6b 5f 73 74 72 69 6e 67 |de."quic|k_string|
|00000300| 73 2e 68 22 0d 23 69 6e | 63 6c 75 64 65 09 22 7a |s.h".#in|clude."z|
|00000310| 38 30 20 6d 61 69 6e 2e | 68 22 0d 23 69 6e 63 6c |80 main.|h".#incl|
|00000320| 75 64 65 09 22 64 69 73 | 70 6c 61 79 2e 68 22 0d |ude."dis|play.h".|
|00000330| 0d 0d 23 64 65 66 69 6e | 65 09 6d 61 78 72 61 6d |..#defin|e.maxram|
|00000340| 70 61 67 65 73 09 38 09 | 09 2f 2f 20 31 32 38 6b |pages.8.|.// 128k|
|00000350| 20 52 41 4d 20 69 6e 20 | 38 20 70 61 67 65 73 20 | RAM in |8 pages |
|00000360| 88 20 31 36 6b 0d 23 64 | 65 66 69 6e 65 09 6d 61 |. 16k.#d|efine.ma|
|00000370| 78 72 6f 6d 70 61 67 65 | 73 09 35 09 09 2f 2f 20 |xrompage|s.5..// |
|00000380| 74 68 65 20 70 6c 75 73 | 33 20 68 61 73 20 34 20 |the plus|3 has 4 |
|00000390| 72 6f 6d 73 20 2b 20 69 | 66 31 20 72 6f 6d 0d 23 |roms + i|f1 rom.#|
|000003a0| 64 65 66 69 6e 65 09 70 | 61 67 65 73 69 7a 65 09 |define.p|agesize.|
|000003b0| 09 30 78 34 30 30 30 09 | 2f 2f 20 31 36 20 6b 42 |.0x4000.|// 16 kB|
|000003c0| 79 74 65 0d 23 64 65 66 | 69 6e 65 09 70 61 67 65 |yte.#def|ine.page|
|000003d0| 6d 61 73 6b 09 09 30 78 | 33 46 46 46 09 2f 2f 20 |mask..0x|3FFF.// |
|000003e0| 31 36 6b 2d 31 0d 23 64 | 65 66 69 6e 65 09 70 61 |16k-1.#d|efine.pa|
|000003f0| 67 65 62 69 74 73 09 09 | 31 34 09 09 2f 2f 20 31 |gebits..|14..// 1|
|00000400| 34 20 62 69 74 20 61 64 | 64 72 65 73 73 20 69 6e |4 bit ad|dress in|
|00000410| 73 69 64 65 20 70 61 67 | 65 0d 0d 0d 69 6e 74 09 |side pag|e...int.|
|00000420| 09 7a 38 30 5f 68 61 72 | 64 77 61 72 65 09 3d 20 |.z80_har|dware.= |
|00000430| 7a 78 5f 34 38 6b 3b 09 | 2f 2f 20 61 63 74 75 61 |zx_48k;.|// actua|
|00000440| 6c 6c 79 20 65 6d 75 6c | 61 74 65 64 20 68 61 72 |lly emul|ated har|
|00000450| 64 77 61 72 65 20 28 20 | 61 73 20 73 65 74 20 75 |dware ( |as set u|
|00000460| 70 20 62 79 20 49 6e 69 | 74 5f 5a 38 30 28 29 20 |p by Ini|t_Z80() |
|00000470| 29 0d 0d 0d 23 69 66 20 | 43 4d 44 5f 50 52 4f 46 |)...#if |CMD_PROF|
|00000480| 49 4c 45 0d 0d 09 42 6f | 6f 6c 65 61 6e 09 63 6f |ILE...Bo|olean.co|
|00000490| 75 6e 74 5f 69 6e 73 74 | 72 09 3d 20 66 61 6c 73 |unt_inst|r.= fals|
|000004a0| 65 3b 0d 0d 09 6c 6f 6e | 67 09 2a 63 6e 74 5f 78 |e;...lon|g.*cnt_x|
|000004b0| 78 20 3d 20 6e 69 6c 3b | 09 09 2f 2f 20 61 72 72 |x = nil;|..// arr|
|000004c0| 61 79 3a 20 63 6f 75 6e | 74 20 75 73 65 20 6f 66 |ay: coun|t use of|
|000004d0| 20 6e 6f 72 6d 61 6c 20 | 69 6e 73 74 72 75 63 74 | normal |instruct|
|000004e0| 69 6f 6e 73 0d 09 6c 6f | 6e 67 09 2a 63 6e 74 5f |ions..lo|ng.*cnt_|
|000004f0| 63 62 20 3d 20 6e 69 6c | 3b 09 09 2f 2f 20 61 72 |cb = nil|;..// ar|
|00000500| 72 61 79 3a 20 63 6f 75 | 6e 74 20 75 73 65 20 6f |ray: cou|nt use o|
|00000510| 66 20 43 42 20 69 6e 73 | 74 72 75 63 74 69 6f 6e |f CB ins|truction|
|00000520| 73 0d 09 6c 6f 6e 67 09 | 2a 63 6e 74 5f 65 64 20 |s..long.|*cnt_ed |
|00000530| 3d 20 6e 69 6c 3b 09 09 | 2f 2f 20 61 72 72 61 79 |= nil;..|// array|
|00000540| 3a 20 63 6f 75 6e 74 20 | 75 73 65 20 6f 66 20 45 |: count |use of E|
|00000550| 44 20 69 6e 73 74 72 75 | 63 74 69 6f 6e 73 0d 09 |D instru|ctions..|
|00000560| 6c 6f 6e 67 09 2a 63 6e | 74 5f 78 79 20 3d 20 6e |long.*cn|t_xy = n|
|00000570| 69 6c 3b 09 09 2f 2f 20 | 61 72 72 61 79 3a 20 63 |il;..// |array: c|
|00000580| 6f 75 6e 74 20 75 73 65 | 20 6f 66 20 69 78 20 61 |ount use| of ix a|
|00000590| 6e 64 20 69 79 20 69 6e | 73 74 72 75 63 74 69 6f |nd iy in|structio|
|000005a0| 6e 73 0d 09 6c 6f 6e 67 | 09 2a 63 6e 74 5f 78 79 |ns..long|.*cnt_xy|
|000005b0| 63 62 20 3d 20 6e 69 6c | 3b 09 2f 2f 20 61 72 72 |cb = nil|;.// arr|
|000005c0| 61 79 3a 20 63 6f 75 6e | 74 20 75 73 65 20 6f 66 |ay: coun|t use of|
|000005d0| 20 69 78 2f 43 42 20 61 | 6e 64 20 69 79 2f 43 42 | ix/CB a|nd iy/CB|
|000005e0| 20 69 6e 73 74 72 75 63 | 74 69 6f 6e 73 0d 0d 23 | instruc|tions..#|
|000005f0| 65 6e 64 69 66 0d 0d 0d | 23 69 66 20 50 43 5f 50 |endif...|#if PC_P|
|00000600| 52 4f 46 49 4c 45 0d 0d | 09 42 6f 6f 6c 65 61 6e |ROFILE..|.Boolean|
|00000610| 09 63 6f 75 6e 74 5f 70 | 63 20 3d 20 66 61 6c 73 |.count_p|c = fals|
|00000620| 65 3b 0d 0d 09 6c 6f 6e | 67 09 2a 63 6e 74 5f 70 |e;...lon|g.*cnt_p|
|00000630| 63 09 3d 20 6e 69 6c 3b | 09 09 2f 2f 20 61 72 72 |c.= nil;|..// arr|
|00000640| 61 79 3a 20 63 6f 75 6e | 74 20 69 6e 73 74 72 75 |ay: coun|t instru|
|00000650| 63 74 69 6f 6e 20 65 78 | 65 63 75 74 69 6f 6e 73 |ction ex|ecutions|
|00000660| 20 70 65 72 20 6c 6f 63 | 61 74 69 6f 6e 20 69 6e | per loc|ation in|
|00000670| 20 52 41 4d 0d 0d 23 65 | 6e 64 69 66 0d 0d 0d 2f | RAM..#e|ndif.../|
|00000680| 2f 20 2d 2d 2d 2d 2d 09 | 54 68 65 20 5a 38 30 20 |/ -----.|The Z80 |
|00000690| 63 6f 72 65 20 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |core ---|--------|
|000006a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006d0| 2d 2d 2d 0d 43 68 61 72 | 2a 2a 09 43 4f 52 45 5f |---.Char|**.CORE_|
|000006e0| 4d 09 09 3d 20 6e 69 6c | 3b 09 2f 2f 20 6d 61 73 |M..= nil|;.// mas|
|000006f0| 74 65 72 20 68 61 6e 64 | 6c 65 20 66 6f 72 20 61 |ter hand|le for a|
|00000700| 6c 6c 20 61 6c 6c 6f 63 | 61 74 65 64 20 52 41 4d |ll alloc|ated RAM|
|00000710| 20 61 6e 64 20 52 4f 4d | 0d 43 68 61 72 2a 09 43 | and ROM|.Char*.C|
|00000720| 4f 52 45 20 09 09 3d 20 | 6e 69 6c 3b 09 2f 2f 20 |ORE ..= |nil;.// |
|00000730| 64 6f 20 6e 6f 74 20 75 | 73 65 20 61 6e 79 20 6c |do not u|se any l|
|00000740| 6f 6e 67 65 72 21 21 21 | 0d 43 68 61 72 2a 09 72 |onger!!!|.Char*.r|
|00000750| 70 61 67 65 5b 34 5d 3b | 09 09 09 09 2f 2f 20 6d |page[4];|....// m|
|00000760| 61 70 70 65 64 20 69 6e | 20 70 61 67 65 73 20 66 |apped in| pages f|
|00000770| 6f 72 20 72 65 61 64 69 | 6e 67 0d 43 68 61 72 2a |or readi|ng.Char*|
|00000780| 09 77 70 61 67 65 5b 34 | 5d 3b 09 09 09 09 2f 2f |.wpage[4|];....//|
|00000790| 20 6d 61 70 70 65 64 20 | 69 6e 20 70 61 67 65 73 | mapped |in pages|
|000007a0| 20 66 6f 72 20 77 72 69 | 74 69 6e 67 0d 43 68 61 | for wri|ting.Cha|
|000007b0| 72 2a 09 72 61 6d 5b 6d | 61 78 72 61 6d 70 61 67 |r*.ram[m|axrampag|
|000007c0| 65 73 5d 3b 09 09 2f 2f | 20 72 65 61 6c 20 52 41 |es];..//| real RA|
|000007d0| 4d 20 70 61 67 65 73 0d | 43 68 61 72 2a 09 72 6f |M pages.|Char*.ro|
|000007e0| 6d 5b 6d 61 78 72 6f 6d | 70 61 67 65 73 5d 3b 09 |m[maxrom|pages];.|
|000007f0| 09 2f 2f 20 72 65 61 6c | 20 52 4f 4d 20 70 61 67 |.// real| ROM pag|
|00000800| 65 73 0d 43 68 61 72 2a | 09 6e 6f 72 6f 6d 09 09 |es.Char*|.norom..|
|00000810| 3d 20 6e 69 6c 3b 09 2f | 2f 20 64 75 6d 6d 79 20 |= nil;./|/ dummy |
|00000820| 70 61 67 65 20 66 6f 72 | 20 77 72 69 74 69 6e 67 |page for| writing|
|00000830| 20 74 6f 20 52 4f 4d 0d | 0d 43 68 61 72 09 09 7a | to ROM.|.Char..z|
|00000840| 78 31 32 38 70 61 67 65 | 63 74 72 6c 09 3d 20 30 |x128page|ctrl.= 0|
|00000850| 3b 09 09 2f 2f 20 6c 61 | 73 74 20 62 79 74 65 20 |;..// la|st byte |
|00000860| 73 65 6e 74 20 74 6f 20 | 5a 58 20 31 32 38 27 73 |sent to |ZX 128's|
|00000870| 20 70 61 67 69 6e 67 20 | 63 6f 6e 74 72 6f 6c 20 | paging |control |
|00000880| 70 6f 72 74 0d 0d 0d 2f | 2f 20 2d 2d 2d 2d 2d 09 |port.../|/ -----.|
|00000890| 54 68 65 20 5a 38 30 20 | 72 65 67 69 73 74 65 72 |The Z80 |register|
|000008a0| 73 20 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |s ------|--------|
|000008b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000008c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000008d0| 2d 2d 2d 2d 0d 7a 38 30 | 09 09 7a 72 65 67 3b 09 |----.z80|..zreg;.|
|000008e0| 09 09 09 2f 2f 20 63 6f | 6e 74 61 69 6e 73 20 7a |...// co|ntains z|
|000008f0| 38 30 20 72 65 67 69 73 | 74 65 72 73 20 6f 6e 20 |80 regis|ters on |
|00000900| 65 6e 74 72 79 2f 72 65 | 74 75 72 6e 20 6f 66 20 |entry/re|turn of |
|00000910| 5a 38 30 28 29 0d 0d 0d | 2f 2f 20 2d 2d 2d 2d 2d |Z80()...|// -----|
|00000920| 09 46 6c 61 67 73 20 61 | 66 74 65 72 20 6c 6f 67 |.Flags a|fter log|
|00000930| 69 63 20 6f 70 65 72 61 | 74 69 6f 6e 73 20 2d 2d |ic opera|tions --|
|00000940| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000950| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000960| 2d 2d 2d 0d 43 68 61 72 | 09 09 7a 6c 6f 67 5f 66 |---.Char|..zlog_f|
|00000970| 6c 61 67 73 5b 32 35 36 | 5d 3b 09 09 2f 2f 20 63 |lags[256|];..// c|
|00000980| 6f 6e 76 65 72 74 3a 20 | 20 20 41 20 2d 3e 20 5a |onvert: | A -> Z|
|00000990| 38 30 2d 66 6c 61 67 73 | 20 77 69 74 68 20 56 3d |80-flags| with V=|
|000009a0| 70 61 72 69 74 79 2c 20 | 53 2c 20 5a 2c 20 61 6e |parity, |S, Z, an|
|000009b0| 64 20 43 3d 30 0d 23 69 | 66 20 21 47 45 4e 45 52 |d C=0.#i|f !GENER|
|000009c0| 41 54 49 4e 47 50 4f 57 | 45 52 50 43 0d 43 68 61 |ATINGPOW|ERPC.Cha|
|000009d0| 72 09 09 6d 6c 6f 67 5f | 66 6c 61 67 73 5b 32 35 |r..mlog_|flags[25|
|000009e0| 36 5d 3b 09 09 2f 2f 20 | 63 6f 6e 76 65 72 74 3a |6];..// |convert:|
|000009f0| 20 20 20 41 2d 72 65 67 | 69 73 74 65 72 20 20 2d | A-reg|ister -|
|00000a00| 3e 20 20 36 38 30 30 30 | 20 66 6c 61 67 73 20 77 |> 68000| flags w|
|00000a10| 69 74 68 20 56 3d 70 61 | 72 69 74 79 20 61 6e 64 |ith V=pa|rity and|
|00000a20| 20 43 3d 30 0d 43 68 61 | 72 09 09 7a 38 30 66 6c | C=0.Cha|r..z80fl|
|00000a30| 61 67 73 5b 32 35 36 5d | 3b 09 09 09 2f 2f 20 63 |ags[256]|;...// c|
|00000a40| 6f 6e 76 65 72 74 3a 20 | 20 20 36 38 30 30 30 20 |onvert: | 68000 |
|00000a50| 66 6c 61 67 62 79 74 65 | 20 20 2d 3e 20 20 5a 38 |flagbyte| -> Z8|
|00000a60| 30 20 66 6c 61 67 62 79 | 74 65 0d 43 68 61 72 09 |0 flagby|te.Char.|
|00000a70| 09 6d 36 38 66 6c 61 67 | 73 5b 32 35 36 5d 3b 09 |.m68flag|s[256];.|
|00000a80| 09 2f 2f 20 63 6f 6e 76 | 65 72 74 3a 20 20 20 5a |.// conv|ert: Z|
|00000a90| 38 30 20 66 6c 61 67 62 | 79 74 65 20 20 2d 3e 20 |80 flagb|yte -> |
|00000aa0| 20 36 38 30 30 30 20 66 | 6c 61 67 62 79 74 65 0d | 68000 f|lagbyte.|
|00000ab0| 23 65 6e 64 69 66 0d 0d | 0d 2f 2f 20 3d 3d 3d 3d |#endif..|.// ====|
|00000ac0| 3d 09 55 74 69 6c 69 74 | 69 65 73 20 3d 3d 3d 3d |=.Utilit|ies ====|
|00000ad0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000ae0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000af0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000b00| 3d 3d 3d 3d 0d 0d 0d 2f | 2f 20 2d 2d 2d 2d 2d 09 |====.../|/ -----.|
|00000b10| 50 65 65 6b 2c 20 50 6f | 6b 65 20 61 6e 64 20 63 |Peek, Po|ke and c|
|00000b20| 61 6c 63 75 6c 61 74 65 | 20 45 41 20 66 6f 72 20 |alculate| EA for |
|00000b30| 70 65 65 6b 69 6e 67 20 | 61 6e 64 20 70 6f 6b 69 |peeking |and poki|
|00000b40| 6e 67 20 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ng -----|--------|
|00000b50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b60| 0d 2f 2f 09 09 54 68 65 | 73 65 20 61 72 65 20 69 |.//..The|se are i|
|00000b70| 6e 61 70 70 72 6f 70 72 | 69 61 74 65 20 66 6f 72 |nappropr|iate for|
|00000b80| 20 6d 61 63 72 6f 73 2c | 20 62 65 63 61 75 73 65 | macros,| because|
|00000b90| 20 74 68 65 20 61 64 64 | 72 65 73 73 20 69 73 20 | the add|ress is |
|00000ba0| 75 73 65 64 20 74 77 69 | 63 65 0d 2f 2f 09 09 6e |used twi|ce.//..n|
|00000bb0| 6f 74 65 3a 09 72 70 61 | 67 65 5b 5d 20 61 6e 64 |ote:.rpa|ge[] and|
|00000bc0| 20 77 70 61 67 65 5b 5d | 20 70 6f 69 6e 74 65 72 | wpage[]| pointer|
|00000bd0| 73 20 61 72 65 20 63 61 | 6c 63 75 6c 61 74 65 64 |s are ca|lculated|
|00000be0| 20 74 68 61 74 20 77 61 | 79 2c 20 74 68 61 74 20 | that wa|y, that |
|00000bf0| 74 68 65 20 75 6e 6d 61 | 73 6b 65 64 20 61 64 64 |the unma|sked add|
|00000c00| 72 65 73 73 20 0d 2f 2f | 09 09 09 6d 75 73 74 20 |ress .//|...must |
|00000c10| 62 65 20 61 64 64 65 64 | 20 74 6f 20 61 64 64 72 |be added| to addr|
|00000c20| 65 73 73 20 74 68 65 20 | 72 69 67 68 74 20 62 79 |ess the |right by|
|00000c30| 74 65 20 69 6e 20 74 68 | 65 20 4d 61 63 69 6e 74 |te in th|e Macint|
|00000c40| 6f 73 68 27 73 20 52 41 | 4d 20 21 0d 0d 43 68 61 |osh's RA|M !..Cha|
|00000c50| 72 2a 20 20 52 64 50 74 | 72 09 28 20 53 68 6f 72 |r* RdPt|r.( Shor|
|00000c60| 74 20 61 64 64 72 20 29 | 09 7b 20 20 72 65 74 75 |t addr )|.{ retu|
|00000c70| 72 6e 20 20 72 70 61 67 | 65 5b 61 64 64 72 3e 3e |rn rpag|e[addr>>|
|00000c80| 70 61 67 65 62 69 74 73 | 5d 20 2b 20 61 64 64 72 |pagebits|] + addr|
|00000c90| 3b 20 09 7d 09 2f 2f 20 | 70 74 72 20 66 6f 72 20 |; .}.// |ptr for |
|00000ca0| 72 65 61 64 69 6e 67 0d | 43 68 61 72 2a 20 20 57 |reading.|Char* W|
|00000cb0| 72 50 74 72 09 28 20 53 | 68 6f 72 74 20 61 64 64 |rPtr.( S|hort add|
|00000cc0| 72 20 29 09 7b 20 20 72 | 65 74 75 72 6e 20 77 70 |r ).{ r|eturn wp|
|00000cd0| 61 67 65 5b 61 64 64 72 | 3e 3e 70 61 67 65 62 69 |age[addr|>>pagebi|
|00000ce0| 74 73 5d 20 2b 20 61 64 | 64 72 3b 20 09 7d 09 2f |ts] + ad|dr; .}./|
|00000cf0| 2f 20 70 74 72 20 66 6f | 72 20 77 72 69 74 69 6e |/ ptr fo|r writin|
|00000d00| 67 0d 0d 43 68 61 72 20 | 20 20 20 50 65 65 6b 09 |g..Char | Peek.|
|00000d10| 28 20 53 68 6f 72 74 20 | 61 64 64 72 20 29 09 09 |( Short |addr )..|
|00000d20| 09 7b 20 20 72 65 74 75 | 72 6e 20 20 72 70 61 67 |.{ retu|rn rpag|
|00000d30| 65 5b 61 64 64 72 3e 3e | 70 61 67 65 62 69 74 73 |e[addr>>|pagebits|
|00000d40| 5d 5b 61 64 64 72 5d 3b | 20 20 09 09 7d 0d 09 20 |][addr];| ..}.. |
|00000d50| 20 20 50 6f 6b 65 09 28 | 20 53 68 6f 72 74 20 61 | Poke.(| Short a|
|00000d60| 64 64 72 2c 20 43 68 61 | 72 20 62 79 74 65 20 29 |ddr, Cha|r byte )|
|00000d70| 09 7b 20 20 20 20 20 20 | 20 20 20 20 20 20 20 77 |.{ | w|
|00000d80| 70 61 67 65 5b 61 64 64 | 72 3e 3e 70 61 67 65 62 |page[add|r>>pageb|
|00000d90| 69 74 73 5d 5b 61 64 64 | 72 5d 20 3d 20 62 79 74 |its][add|r] = byt|
|00000da0| 65 3b 09 7d 0d 0d 0d 2f | 2f 20 2d 2d 2d 2d 2d 09 |e;.}.../|/ -----.|
|00000db0| 57 72 69 74 65 20 66 72 | 6f 6d 2f 74 6f 20 63 6f |Write fr|om/to co|
|00000dc0| 72 65 2c 20 62 75 66 66 | 65 72 20 61 6e 64 20 66 |re, buff|er and f|
|00000dd0| 69 6c 65 20 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ile ----|--------|
|00000de0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000df0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00000e00| 2f 2f 09 09 66 69 6c 65 | 20 6f 70 65 72 61 74 69 |//..file| operati|
|00000e10| 6f 6e 73 20 72 65 74 75 | 72 6e 20 30 20 69 66 20 |ons retu|rn 0 if |
|00000e20| 6f 6b 20 65 6c 73 65 20 | 4f 53 20 65 72 72 6f 72 |ok else |OS error|
|00000e30| 0d 0d 6c 6f 6e 67 09 09 | 74 66 75 3b 09 09 09 09 |..long..|tfu;....|
|00000e40| 2f 2f 20 61 66 74 65 72 | 20 72 65 61 64 2f 77 72 |// after| read/wr|
|00000e50| 69 74 65 20 74 6f 20 66 | 69 6c 65 3a 20 62 79 74 |ite to f|ile: byt|
|00000e60| 65 73 20 61 63 74 75 61 | 6c 6c 79 20 74 72 61 6e |es actua|lly tran|
|00000e70| 73 66 65 72 72 65 64 0d | 0d 0d 2f 2a 20 2d 2d 2d |sferred.|../* ---|
|00000e80| 2d 2d 09 57 72 69 74 65 | 20 62 75 66 66 65 72 20 |--.Write| buffer |
|00000e90| 74 6f 20 66 69 6c 65 20 | 2d 2d 2d 2d 2d 2d 2d 2d |to file |--------|
|00000ea0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000eb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ec0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ed0| 2d 2d 0d 2a 2f 0d 4f 53 | 45 72 72 20 42 75 66 66 |--.*/.OS|Err Buff|
|00000ee0| 65 72 32 46 69 6c 65 20 | 28 20 76 6f 69 64 2a 20 |er2File |( void* |
|00000ef0| 62 75 2c 20 73 68 6f 72 | 74 20 66 69 6c 65 49 44 |bu, shor|t fileID|
|00000f00| 2c 20 6c 6f 6e 67 20 6c | 65 6e 20 29 0d 7b 09 0d |, long l|en ).{..|
|00000f10| 09 74 66 75 20 3d 20 6c | 65 6e 3b 0d 09 72 65 74 |.tfu = l|en;..ret|
|00000f20| 75 72 6e 20 46 53 57 72 | 69 74 65 20 28 20 66 69 |urn FSWr|ite ( fi|
|00000f30| 6c 65 49 44 2c 20 26 74 | 66 75 2c 20 62 75 20 29 |leID, &t|fu, bu )|
|00000f40| 3b 0d 7d 0d 0d 0d 2f 2a | 20 2d 2d 2d 2d 2d 09 52 |;.}.../*| -----.R|
|00000f50| 65 61 64 20 62 75 66 66 | 65 72 20 66 72 6f 6d 20 |ead buff|er from |
|00000f60| 66 69 6c 65 20 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |file ---|--------|
|00000f70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000f80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000f90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 2a 2f |--------|-----.*/|
|00000fa0| 0d 4f 53 45 72 72 20 46 | 69 6c 65 32 42 75 66 66 |.OSErr F|ile2Buff|
|00000fb0| 65 72 20 28 20 73 68 6f | 72 74 20 66 69 6c 65 49 |er ( sho|rt fileI|
|00000fc0| 44 2c 20 76 6f 69 64 2a | 20 62 75 2c 20 6c 6f 6e |D, void*| bu, lon|
|00000fd0| 67 20 6c 65 6e 20 29 0d | 7b 0d 09 74 66 75 20 3d |g len ).|{..tfu =|
|00000fe0| 20 6c 65 6e 3b 20 20 0d | 09 72 65 74 75 72 6e 20 | len; .|.return |
|00000ff0| 46 53 52 65 61 64 20 28 | 20 66 69 6c 65 49 44 2c |FSRead (| fileID,|
|00001000| 20 26 74 66 75 2c 20 62 | 75 20 29 3b 0d 7d 0d 0d | &tfu, b|u );.}..|
|00001010| 0d 2f 2a 20 2d 2d 2d 2d | 2d 09 57 72 69 74 65 20 |./* ----|-.Write |
|00001020| 63 6f 72 65 20 74 6f 20 | 66 69 6c 65 20 2d 2d 2d |core to |file ---|
|00001030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001040| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001050| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001060| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 09 09 73 61 76 65 |--------|-...save|
|00001070| 73 20 77 68 61 74 20 74 | 68 65 20 7a 38 30 20 63 |s what t|he z80 c|
|00001080| 70 75 20 77 6f 75 6c 64 | 20 72 65 61 64 0d 2a 2f |pu would| read.*/|
|00001090| 0d 4f 53 45 72 72 20 43 | 6f 72 65 32 46 69 6c 65 |.OSErr C|ore2File|
|000010a0| 20 28 20 53 68 6f 72 74 | 20 61 64 64 72 2c 20 73 | ( Short| addr, s|
|000010b0| 68 6f 72 74 20 66 69 6c | 65 49 44 2c 20 6c 6f 6e |hort fil|eID, lon|
|000010c0| 67 20 6c 65 6e 20 29 0d | 7b 09 4f 53 45 72 72 20 |g len ).|{.OSErr |
|000010d0| 65 72 72 3b 20 6c 6f 6e | 67 20 6e 3b 0d 0d 09 74 |err; lon|g n;...t|
|000010e0| 66 75 20 3d 20 30 3b 0d | 09 66 6f 72 20 28 20 65 |fu = 0;.|.for ( e|
|000010f0| 72 72 3d 6e 6f 45 72 72 | 3b 20 21 65 72 72 20 26 |rr=noErr|; !err &|
|00001100| 26 20 6c 65 6e 3b 20 29 | 0d 09 7b 09 6e 20 3d 20 |& len; )|..{.n = |
|00001110| 6d 69 6e 20 28 20 6c 65 | 6e 2c 20 70 61 67 65 73 |min ( le|n, pages|
|00001120| 69 7a 65 2d 28 61 64 64 | 72 26 70 61 67 65 6d 61 |ize-(add|r&pagema|
|00001130| 73 6b 29 20 29 3b 0d 09 | 09 50 72 69 6e 74 44 65 |sk) );..|.PrintDe|
|00001140| 62 75 67 20 28 20 43 61 | 74 53 74 72 69 6e 67 28 |bug ( Ca|tString(|
|00001150| 43 61 74 53 74 72 69 6e | 67 28 22 5c 70 43 6f 72 |CatStrin|g("\pCor|
|00001160| 65 2d 3e 46 69 6c 65 3b | 20 61 64 64 72 3a 20 22 |e->File;| addr: "|
|00001170| 2c 4e 75 6d 53 74 72 69 | 6e 67 28 61 64 64 72 29 |,NumStri|ng(addr)|
|00001180| 29 2c 20 43 61 74 53 74 | 72 69 6e 67 28 22 5c 70 |), CatSt|ring("\p|
|00001190| 3b 20 62 79 74 65 73 3a | 20 22 2c 4e 75 6d 53 74 |; bytes:| ",NumSt|
|000011a0| 72 69 6e 67 28 6e 29 29 | 29 2c 30 29 3b 0d 09 09 |ring(n))|),0);...|
|000011b0| 65 72 72 20 3d 20 46 53 | 57 72 69 74 65 20 28 20 |err = FS|Write ( |
|000011c0| 66 69 6c 65 49 44 2c 20 | 26 6e 2c 20 52 64 50 74 |fileID, |&n, RdPt|
|000011d0| 72 28 61 64 64 72 29 20 | 29 3b 0d 09 09 61 64 64 |r(addr) |);...add|
|000011e0| 72 20 2b 3d 20 6e 3b 0d | 09 09 6c 65 6e 20 2d 3d |r += n;.|..len -=|
|000011f0| 20 6e 3b 0d 09 09 74 66 | 75 20 2b 3d 20 6e 3b 0d | n;...tf|u += n;.|
|00001200| 09 7d 0d 09 72 65 74 75 | 72 6e 20 65 72 72 3b 0d |.}..retu|rn err;.|
|00001210| 7d 0d 0d 0d 2f 2a 20 2d | 2d 2d 2d 2d 09 52 65 61 |}.../* -|----.Rea|
|00001220| 64 20 63 6f 72 65 20 66 | 72 6f 6d 20 66 69 6c 65 |d core f|rom file|
|00001230| 20 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | -------|--------|
|00001240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 09 09 73 |--------|----...s|
|00001270| 74 6f 72 65 73 20 77 68 | 61 74 20 74 68 65 20 7a |tores wh|at the z|
|00001280| 38 30 20 63 70 75 20 77 | 6f 75 6c 64 20 77 72 69 |80 cpu w|ould wri|
|00001290| 74 65 0d 09 09 52 4f 4d | 20 69 73 20 61 75 74 6f |te...ROM| is auto|
|000012a0| 6d 61 74 69 63 61 6c 6c | 79 20 70 72 6f 74 65 63 |maticall|y protec|
|000012b0| 74 65 64 0d 2a 2f 0d 4f | 53 45 72 72 20 46 69 6c |ted.*/.O|SErr Fil|
|000012c0| 65 32 43 6f 72 65 20 28 | 20 73 68 6f 72 74 20 66 |e2Core (| short f|
|000012d0| 69 6c 65 49 44 2c 20 53 | 68 6f 72 74 20 61 64 64 |ileID, S|hort add|
|000012e0| 72 2c 20 6c 6f 6e 67 20 | 6c 65 6e 20 29 0d 7b 09 |r, long |len ).{.|
|000012f0| 4f 53 45 72 72 20 65 72 | 72 3b 20 6c 6f 6e 67 20 |OSErr er|r; long |
|00001300| 6e 3b 0d 0d 09 74 66 75 | 20 3d 20 30 3b 0d 09 66 |n;...tfu| = 0;..f|
|00001310| 6f 72 20 28 20 65 72 72 | 3d 6e 6f 45 72 72 3b 20 |or ( err|=noErr; |
|00001320| 21 65 72 72 20 26 26 20 | 6c 65 6e 3b 20 29 0d 09 |!err && |len; )..|
|00001330| 7b 09 6e 20 3d 20 6d 69 | 6e 20 28 20 6c 65 6e 2c |{.n = mi|n ( len,|
|00001340| 20 70 61 67 65 73 69 7a | 65 2d 28 61 64 64 72 26 | pagesiz|e-(addr&|
|00001350| 70 61 67 65 6d 61 73 6b | 20 29 20 29 3b 0d 09 09 |pagemask| ) );...|
|00001360| 50 72 69 6e 74 44 65 62 | 75 67 20 28 20 43 61 74 |PrintDeb|ug ( Cat|
|00001370| 53 74 72 69 6e 67 28 43 | 61 74 53 74 72 69 6e 67 |String(C|atString|
|00001380| 28 22 5c 70 46 69 6c 65 | 2d 3e 43 6f 72 65 3b 20 |("\pFile|->Core; |
|00001390| 61 64 64 72 3a 20 22 2c | 4e 75 6d 53 74 72 69 6e |addr: ",|NumStrin|
|000013a0| 67 28 61 64 64 72 29 29 | 2c 20 43 61 74 53 74 72 |g(addr))|, CatStr|
|000013b0| 69 6e 67 28 22 5c 70 3b | 20 62 79 74 65 73 3a 20 |ing("\p;| bytes: |
|000013c0| 22 2c 4e 75 6d 53 74 72 | 69 6e 67 28 6e 29 29 29 |",NumStr|ing(n)))|
|000013d0| 2c 30 29 3b 0d 09 09 65 | 72 72 20 3d 20 46 53 52 |,0);...e|rr = FSR|
|000013e0| 65 61 64 20 28 20 66 69 | 6c 65 49 44 2c 20 26 6e |ead ( fi|leID, &n|
|000013f0| 2c 20 57 72 50 74 72 28 | 61 64 64 72 29 20 29 3b |, WrPtr(|addr) );|
|00001400| 0d 09 09 61 64 64 72 20 | 2b 3d 20 6e 3b 0d 09 09 |...addr |+= n;...|
|00001410| 6c 65 6e 20 2d 3d 20 6e | 3b 0d 09 09 74 66 75 20 |len -= n|;...tfu |
|00001420| 2b 3d 20 6e 3b 0d 09 7d | 0d 09 72 65 74 75 72 6e |+= n;..}|..return|
|00001430| 20 65 72 72 3b 0d 7d 0d | 0d 0d 2f 2a 20 2d 2d 2d | err;.}.|../* ---|
|00001440| 2d 2d 09 43 6f 70 79 20 | 63 6f 72 65 20 74 6f 20 |--.Copy |core to |
|00001450| 62 75 66 66 65 72 20 2d | 2d 2d 2d 2d 2d 2d 2d 2d |buffer -|--------|
|00001460| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001470| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001480| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001490| 2d 2d 0d 09 09 63 6f 70 | 69 65 73 20 77 68 61 74 |--...cop|ies what|
|000014a0| 20 74 68 65 20 7a 38 30 | 20 63 70 75 20 77 6f 75 | the z80| cpu wou|
|000014b0| 6c 64 20 72 65 61 64 0d | 2a 2f 0d 43 6f 72 65 32 |ld read.|*/.Core2|
|000014c0| 42 75 66 66 65 72 20 28 | 20 53 68 6f 72 74 20 61 |Buffer (| Short a|
|000014d0| 64 64 72 2c 20 76 6f 69 | 64 2a 20 62 75 2c 20 6c |ddr, voi|d* bu, l|
|000014e0| 6f 6e 67 20 6c 65 6e 20 | 29 0d 7b 09 6c 6f 6e 67 |ong len |).{.long|
|000014f0| 20 6e 3b 0d 0d 09 77 68 | 69 6c 65 20 28 20 6c 65 | n;...wh|ile ( le|
|00001500| 6e 20 29 0d 09 7b 09 6e | 20 3d 20 6d 69 6e 20 28 |n )..{.n| = min (|
|00001510| 20 6c 65 6e 2c 20 70 61 | 67 65 73 69 7a 65 2d 28 | len, pa|gesize-(|
|00001520| 61 64 64 72 26 70 61 67 | 65 6d 61 73 6b 20 29 20 |addr&pag|emask ) |
|00001530| 29 3b 0d 09 09 6d 65 6d | 63 70 79 20 28 20 62 75 |);...mem|cpy ( bu|
|00001540| 2c 20 52 64 50 74 72 28 | 61 64 64 72 29 2c 20 6e |, RdPtr(|addr), n|
|00001550| 20 29 3b 0d 09 09 62 75 | 20 3d 20 28 43 68 61 72 | );...bu| = (Char|
|00001560| 2a 29 62 75 2b 6e 3b 0d | 09 09 61 64 64 72 20 2b |*)bu+n;.|..addr +|
|00001570| 3d 20 6e 3b 0d 09 09 6c | 65 6e 20 2d 3d 20 6e 3b |= n;...l|en -= n;|
|00001580| 0d 09 7d 0d 7d 0d 0d 2f | 2a 20 2d 2d 2d 2d 2d 09 |..}.}../|* -----.|
|00001590| 43 6f 70 79 20 62 75 66 | 66 65 72 20 74 6f 20 63 |Copy buf|fer to c|
|000015a0| 6f 72 65 20 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ore ----|--------|
|000015b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015e0| 0d 09 09 63 6f 70 69 65 | 73 20 77 68 61 74 20 74 |...copie|s what t|
|000015f0| 68 65 20 7a 38 30 20 63 | 70 75 20 77 6f 75 6c 64 |he z80 c|pu would|
|00001600| 20 77 72 69 74 65 0d 2a | 2f 0d 42 75 66 66 65 72 | write.*|/.Buffer|
|00001610| 32 43 6f 72 65 20 28 20 | 76 6f 69 64 2a 20 62 75 |2Core ( |void* bu|
|00001620| 2c 20 53 68 6f 72 74 20 | 61 64 64 72 2c 20 6c 6f |, Short |addr, lo|
|00001630| 6e 67 20 6c 65 6e 20 29 | 0d 7b 09 6c 6f 6e 67 20 |ng len )|.{.long |
|00001640| 6e 3b 0d 0d 09 77 68 69 | 6c 65 20 28 20 6c 65 6e |n;...whi|le ( len|
|00001650| 20 29 0d 09 7b 09 6e 20 | 3d 20 6d 69 6e 20 28 20 | )..{.n |= min ( |
|00001660| 6c 65 6e 2c 20 70 61 67 | 65 73 69 7a 65 2d 28 61 |len, pag|esize-(a|
|00001670| 64 64 72 26 70 61 67 65 | 6d 61 73 6b 20 29 20 29 |ddr&page|mask ) )|
|00001680| 3b 0d 09 09 6d 65 6d 63 | 70 79 20 28 20 57 72 50 |;...memc|py ( WrP|
|00001690| 74 72 28 61 64 64 72 29 | 2c 20 62 75 2c 20 6e 20 |tr(addr)|, bu, n |
|000016a0| 29 3b 0d 09 09 62 75 20 | 3d 20 28 43 68 61 72 2a |);...bu |= (Char*|
|000016b0| 29 62 75 2b 6e 3b 0d 09 | 09 61 64 64 72 20 2b 3d |)bu+n;..|.addr +=|
|000016c0| 20 6e 3b 0d 09 09 6c 65 | 6e 20 2d 3d 20 6e 3b 0d | n;...le|n -= n;.|
|000016d0| 09 7d 0d 7d 0d 0d 2f 2a | 20 2d 2d 2d 2d 2d 09 43 |.}.}../*| -----.C|
|000016e0| 6f 70 79 20 63 6f 72 65 | 20 74 6f 20 63 6f 72 65 |opy core| to core|
|000016f0| 20 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | -------|--------|
|00001700| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001720| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00001730| 09 09 63 6f 70 69 65 73 | 20 77 68 61 74 20 74 68 |..copies| what th|
|00001740| 65 20 7a 38 30 20 63 70 | 75 20 77 6f 75 6c 64 20 |e z80 cp|u would |
|00001750| 63 6f 70 79 0d 2a 2f 0d | 43 6f 72 65 32 43 6f 72 |copy.*/.|Core2Cor|
|00001760| 65 20 28 20 53 68 6f 72 | 74 20 73 72 63 2c 20 53 |e ( Shor|t src, S|
|00001770| 68 6f 72 74 20 64 65 73 | 74 2c 20 6c 6f 6e 67 20 |hort des|t, long |
|00001780| 6c 65 6e 20 29 0d 7b 09 | 6c 6f 6e 67 20 6e 3b 0d |len ).{.|long n;.|
|00001790| 0d 09 77 68 69 6c 65 20 | 28 6c 65 6e 29 0d 09 7b |..while |(len)..{|
|000017a0| 09 6e 20 3d 20 6d 69 6e | 20 28 20 6d 69 6e 20 28 |.n = min| ( min (|
|000017b0| 20 6c 65 6e 2c 20 70 61 | 67 65 73 69 7a 65 2d 28 | len, pa|gesize-(|
|000017c0| 73 72 63 26 70 61 67 65 | 6d 61 73 6b 20 29 20 29 |src&page|mask ) )|
|000017d0| 2c 20 70 61 67 65 73 69 | 7a 65 2d 28 64 65 73 74 |, pagesi|ze-(dest|
|000017e0| 26 70 61 67 65 6d 61 73 | 6b 20 29 20 29 3b 0d 09 |&pagemas|k ) );..|
|000017f0| 09 6d 65 6d 63 70 79 20 | 28 20 57 72 50 74 72 28 |.memcpy |( WrPtr(|
|00001800| 64 65 73 74 29 2c 20 52 | 64 50 74 72 28 73 72 63 |dest), R|dPtr(src|
|00001810| 29 2c 20 6e 20 29 3b 0d | 09 09 73 72 63 20 2b 3d |), n );.|..src +=|
|00001820| 20 6e 3b 0d 09 09 64 65 | 73 74 20 2b 3d 20 6e 3b | n;...de|st += n;|
|00001830| 0d 09 09 6c 65 6e 20 2d | 3d 20 6e 3b 0d 09 7d 09 |...len -|= n;..}.|
|00001840| 0d 7d 0d 0d 2f 2a 20 2d | 2d 2d 2d 2d 09 43 6f 70 |.}../* -|----.Cop|
|00001850| 79 20 62 75 66 66 65 72 | 20 74 6f 20 62 75 66 66 |y buffer| to buff|
|00001860| 65 72 20 28 6a 75 73 74 | 20 66 6f 72 20 63 6f 6d |er (just| for com|
|00001870| 70 6c 65 74 65 6e 65 73 | 73 29 20 2d 2d 2d 2d 2d |pletenes|s) -----|
|00001880| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001890| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|000018a0| 2a 2f 0d 42 75 66 66 65 | 72 32 42 75 66 66 65 72 |*/.Buffe|r2Buffer|
|000018b0| 20 28 20 76 6f 69 64 2a | 20 73 72 63 2c 20 76 6f | ( void*| src, vo|
|000018c0| 69 64 2a 20 64 65 73 74 | 2c 20 6c 6f 6e 67 20 6c |id* dest|, long l|
|000018d0| 65 6e 20 29 0d 7b 0d 09 | 6d 65 6d 63 70 79 20 28 |en ).{..|memcpy (|
|000018e0| 20 64 65 73 74 2c 20 73 | 72 63 2c 20 6c 65 6e 20 | dest, s|rc, len |
|000018f0| 29 3b 0d 7d 0d 0d 0d 2f | 2a 20 2d 2d 2d 2d 2d 09 |);.}.../|* -----.|
|00001900| 53 65 6e 64 20 62 79 74 | 65 20 74 6f 20 5a 58 20 |Send byt|e to ZX |
|00001910| 31 32 38 27 73 20 70 61 | 67 69 6e 67 20 63 6f 6e |128's pa|ging con|
|00001920| 74 72 6f 6c 20 70 6f 72 | 74 20 2d 2d 2d 2d 2d 2d |trol por|t ------|
|00001930| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001940| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001950| 2d 2d 0d 09 09 42 69 74 | 73 20 30 2d 32 3a 09 52 |--...Bit|s 0-2:.R|
|00001960| 61 6d 20 66 6f 72 20 74 | 6f 70 20 31 36 6b 3a 09 |am for t|op 16k:.|
|00001970| 30 20 69 73 20 74 68 65 | 20 75 73 75 61 6c 20 62 |0 is the| usual b|
|00001980| 61 6e 6b 3b 20 20 20 37 | 20 63 6f 6e 74 61 69 6e |ank; 7| contain|
|00001990| 73 20 73 6f 6d 65 20 73 | 63 72 61 74 63 68 70 61 |s some s|cratchpa|
|000019a0| 64 73 20 75 73 65 64 20 | 62 79 20 74 68 65 20 31 |ds used |by the 1|
|000019b0| 32 38 6b 20 65 64 69 74 | 6f 72 2e 0d 09 09 42 69 |28k edit|or....Bi|
|000019c0| 74 20 33 3a 09 53 63 72 | 65 65 6e 20 73 65 6c 65 |t 3:.Scr|een sele|
|000019d0| 63 74 3a 09 09 30 20 3d | 3e 20 55 73 65 20 74 68 |ct:..0 =|> Use th|
|000019e0| 65 20 6e 6f 72 6d 61 6c | 20 73 63 72 65 65 6e 20 |e normal| screen |
|000019f0| 69 6e 20 62 61 6e 6b 20 | 35 3b 09 31 20 3d 3e 20 |in bank |5;.1 => |
|00001a00| 55 73 65 20 74 68 65 20 | 73 68 61 64 6f 77 20 73 |Use the |shadow s|
|00001a10| 63 72 65 65 6e 20 69 6e | 20 62 61 6e 6b 20 37 2e |creen in| bank 7.|
|00001a20| 0d 09 09 42 69 74 20 34 | 3a 09 52 4f 4d 20 66 6f |...Bit 4|:.ROM fo|
|00001a30| 72 20 6c 6f 77 65 72 20 | 31 36 6b 3a 09 30 20 3d |r lower |16k:.0 =|
|00001a40| 3e 20 31 32 38 6b 20 65 | 64 69 74 6f 72 3b 09 09 |> 128k e|ditor;..|
|00001a50| 09 09 09 31 20 3d 3e 20 | 34 38 6b 20 42 41 53 49 |...1 => |48k BASI|
|00001a60| 43 0d 09 09 42 69 74 20 | 35 3a 09 4c 6f 63 6b 2e |C...Bit |5:.Lock.|
|00001a70| 20 49 66 20 73 65 74 2c | 20 64 69 73 61 62 6c 65 | If set,| disable|
|00001a80| 73 20 61 6c 6c 20 66 75 | 72 74 68 65 72 20 70 61 |s all fu|rther pa|
|00001a90| 67 69 6e 67 2e 0d 2a 2f | 0d 5a 58 31 32 38 50 61 |ging..*/|.ZX128Pa|
|00001aa0| 67 65 43 74 72 6c 20 28 | 20 43 68 61 72 20 6e 20 |geCtrl (| Char n |
|00001ab0| 29 0d 7b 0d 09 69 66 20 | 28 7a 38 30 5f 68 61 72 |).{..if |(z80_har|
|00001ac0| 64 77 61 72 65 21 3d 7a | 78 5f 31 32 38 29 20 72 |dware!=z|x_128) r|
|00001ad0| 65 74 75 72 6e 3b 09 09 | 09 2f 2f 20 6e 6f 74 20 |eturn;..|.// not |
|00001ae0| 61 20 5a 58 20 31 32 38 | 0d 09 69 66 20 28 7a 78 |a ZX 128|..if (zx|
|00001af0| 31 32 38 70 61 67 65 63 | 74 72 6c 26 30 78 32 30 |128pagec|trl&0x20|
|00001b00| 29 20 72 65 74 75 72 6e | 3b 09 09 09 2f 2f 20 66 |) return|;...// f|
|00001b10| 75 72 74 68 65 72 20 70 | 61 67 69 6e 67 20 64 69 |urther p|aging di|
|00001b20| 73 61 62 6c 65 64 0d 09 | 7a 78 31 32 38 70 61 67 |sabled..|zx128pag|
|00001b30| 65 63 74 72 6c 20 3d 20 | 6e 3b 0d 09 72 70 61 67 |ectrl = |n;..rpag|
|00001b40| 65 5b 30 5d 20 3d 20 28 | 6e 26 30 78 31 30 29 20 |e[0] = (|n&0x10) |
|00001b50| 3f 20 72 6f 6d 5b 31 5d | 20 3a 20 72 6f 6d 5b 30 |? rom[1]| : rom[0|
|00001b60| 5d 3b 09 09 2f 2f 20 52 | 4f 4d 20 73 65 6c 65 63 |];..// R|OM selec|
|00001b70| 74 0d 09 76 69 64 65 6f | 5f 70 61 67 65 20 3d 20 |t..video|_page = |
|00001b80| 28 6e 26 30 78 30 38 29 | 20 3f 20 72 61 6d 5b 37 |(n&0x08)| ? ram[7|
|00001b90| 5d 20 3a 20 72 61 6d 5b | 35 5d 3b 09 2f 2f 20 76 |] : ram[|5];.// v|
|00001ba0| 69 64 65 6f 20 52 41 4d | 20 73 65 6c 65 63 74 0d |ideo RAM| select.|
|00001bb0| 09 72 70 61 67 65 5b 33 | 5d 20 3d 20 77 70 61 67 |.rpage[3|] = wpag|
|00001bc0| 65 5b 33 5d 20 3d 20 72 | 61 6d 5b 6e 26 30 78 30 |e[3] = r|am[n&0x0|
|00001bd0| 37 5d 2d 30 78 63 30 30 | 30 3b 09 2f 2f 20 75 70 |7]-0xc00|0;.// up|
|00001be0| 70 65 72 20 52 41 4d 20 | 70 61 67 65 20 73 65 6c |per RAM |page sel|
|00001bf0| 65 63 74 0d 7d 0d 0d 0d | 2f 2a 20 2d 2d 2d 2d 2d |ect.}...|/* -----|
|00001c00| 09 49 6e 69 74 69 61 6c | 69 61 6c 69 7a 65 20 74 |.Initial|ialize t|
|00001c10| 68 65 20 7a 38 30 20 65 | 6e 67 69 6e 65 20 2d 2d |he z80 e|ngine --|
|00001c20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 09 09 61 6c 6c |--------|--...all|
|00001c50| 6f 63 61 74 65 20 72 6f | 6d 2c 20 72 61 6d 2c 20 |ocate ro|m, ram, |
|00001c60| 61 6e 64 20 6e 6f 72 6f | 6d 20 70 61 67 65 73 0d |and noro|m pages.|
|00001c70| 09 09 69 6e 69 74 69 61 | 6c 69 7a 65 20 72 6f 6d |..initia|lize rom|
|00001c80| 5b 5d 2c 20 72 61 6d 5b | 5d 20 61 6e 64 20 6e 6f |[], ram[|] and no|
|00001c90| 72 6f 6d 0d 09 09 69 6e | 69 74 69 61 6c 69 7a 65 |rom...in|itialize|
|00001ca0| 20 72 70 61 67 65 5b 5d | 20 61 6e 64 20 77 70 61 | rpage[]| and wpa|
|00001cb0| 67 65 5b 5d 20 66 6f 72 | 20 72 65 73 65 74 0d 09 |ge[] for| reset..|
|00001cc0| 09 43 4f 52 45 20 70 6f | 69 6e 74 73 20 74 6f 20 |.CORE po|ints to |
|00001cd0| 72 65 73 65 74 20 63 6f | 72 65 20 77 68 69 63 68 |reset co|re which|
|00001ce0| 20 69 73 20 61 6c 6c 6f | 63 61 74 65 64 20 69 6e | is allo|cated in|
|00001cf0| 20 34 20 63 6f 6e 73 65 | 63 75 74 69 76 65 20 70 | 4 conse|cutive p|
|00001d00| 61 67 65 73 21 0d 09 09 | 69 6e 69 74 20 72 61 6e |ages!...|init ran|
|00001d10| 64 6f 6d 20 67 65 6e 65 | 72 61 74 6f 72 20 66 6f |dom gene|rator fo|
|00001d20| 72 20 72 20 72 65 67 69 | 73 74 65 72 20 68 61 6e |r r regi|ster han|
|00001d30| 64 6c 69 6e 67 0d 09 09 | 63 61 6c 63 75 6c 61 74 |dling...|calculat|
|00001d40| 65 20 66 6c 61 67 20 74 | 61 62 6c 65 73 0d 20 09 |e flag t|ables. .|
|00001d50| 09 69 6e 69 74 69 61 6c | 69 7a 65 20 7a 72 65 67 |.initial|ize zreg|
|00001d60| 0d 09 09 72 65 73 65 74 | 20 7a 38 30 0d 09 09 4f |...reset| z80...O|
|00001d70| 6e 20 61 20 36 38 6b 20 | 6d 61 63 68 69 6e 65 3a |n a 68k |machine:|
|00001d80| 0d 09 09 a5 20 74 68 65 | 20 63 6f 72 65 20 69 73 |.... the| core is|
|00001d90| 20 61 6c 69 67 6e 65 64 | 20 74 6f 20 61 20 6d 75 | aligned| to a mu|
|00001da0| 6c 74 69 70 6c 65 20 6f | 66 20 30 78 30 30 30 31 |ltiple o|f 0x0001|
|00001db0| 30 30 30 30 0d 09 09 a5 | 20 73 6f 6d 65 20 62 79 |0000....| some by|
|00001dc0| 74 65 20 62 65 68 69 6e | 64 20 74 68 65 20 6c 61 |te behin|d the la|
|00001dd0| 73 74 20 62 79 74 65 20 | 61 20 70 72 65 73 65 74 |st byte |a preset|
|00001de0| 20 77 69 74 68 20 72 73 | 74 30 20 6f 70 63 6f 64 | with rs|t0 opcod|
|00001df0| 65 73 0d 09 09 a5 20 68 | 69 67 68 20 77 6f 72 64 |es.... h|igh word|
|00001e00| 73 20 6f 66 20 70 6f 69 | 6e 74 65 72 73 20 69 6e |s of poi|nters in|
|00001e10| 20 7a 72 65 67 20 73 74 | 72 75 63 74 20 61 72 65 | zreg st|ruct are|
|00001e20| 20 73 65 74 20 74 6f 20 | 70 6f 69 6e 74 20 74 6f | set to |point to|
|00001e30| 20 74 68 65 20 63 6f 72 | 65 0d 2a 2f 0d 49 6e 69 | the cor|e.*/.Ini|
|00001e40| 74 5a 38 30 20 28 20 69 | 6e 74 20 68 61 72 64 77 |tZ80 ( i|nt hardw|
|00001e50| 61 72 65 20 29 0d 7b 09 | 69 6e 74 20 69 2c 20 72 |are ).{.|int i, r|
|00001e60| 6f 6d 73 2c 20 72 61 6d | 73 3b 0d 09 4f 53 45 72 |oms, ram|s;..OSEr|
|00001e70| 72 20 65 72 72 3d 6e 6f | 45 72 72 3b 0d 09 43 68 |r err=no|Err;..Ch|
|00001e80| 61 72 20 2a 70 3b 0d 0d | 09 73 77 69 74 63 68 20 |ar *p;..|.switch |
|00001e90| 28 68 61 72 64 77 61 72 | 65 29 0d 09 7b 0d 09 63 |(hardwar|e)..{..c|
|00001ea0| 61 73 65 20 7a 78 5f 34 | 38 6b 3a 09 72 6f 6d 73 |ase zx_4|8k:.roms|
|00001eb0| 3d 31 3b 20 72 61 6d 73 | 3d 33 3b 20 62 72 65 61 |=1; rams|=3; brea|
|00001ec0| 6b 3b 0d 09 63 61 73 65 | 20 7a 78 5f 31 32 38 3a |k;..case| zx_128:|
|00001ed0| 09 72 6f 6d 73 3d 32 3b | 20 72 61 6d 73 3d 38 3b |.roms=2;| rams=8;|
|00001ee0| 20 62 72 65 61 6b 3b 0d | 09 64 65 66 61 75 6c 74 | break;.|.default|
|00001ef0| 3a 09 09 61 62 6f 72 74 | 28 22 5c 70 49 6e 69 74 |:..abort|("\pInit|
|00001f00| 5a 38 30 28 29 3a 22 2c | 22 5c 70 69 6c 6c 65 67 |Z80():",|"\pilleg|
|00001f10| 61 6c 20 6d 6f 64 65 6c | 20 6e 75 6d 62 65 72 3a |al model| number:|
|00001f20| 20 22 2c 4e 75 6d 53 74 | 72 69 6e 67 28 68 61 72 | ",NumSt|ring(har|
|00001f30| 64 77 61 72 65 29 29 3b | 0d 09 7d 0d 09 7a 38 30 |dware));|..}..z80|
|00001f40| 5f 68 61 72 64 77 61 72 | 65 20 3d 20 68 61 72 64 |_hardwar|e = hard|
|00001f50| 77 61 72 65 3b 0d 0d 2f | 2f 20 61 6c 6c 6f 63 61 |ware;../|/ alloca|
|00001f60| 74 65 20 64 75 6d 6d 79 | 20 77 72 69 74 65 20 70 |te dummy| write p|
|00001f70| 61 67 65 20 66 6f 72 20 | 52 4f 4d 73 0d 09 69 66 |age for |ROMs..if|
|00001f80| 20 28 21 6e 6f 72 6f 6d | 29 09 6e 6f 72 6f 6d 20 | (!norom|).norom |
|00001f90| 3d 20 28 43 68 61 72 2a | 29 4e 65 77 50 74 72 28 |= (Char*|)NewPtr(|
|00001fa0| 70 61 67 65 73 69 7a 65 | 29 3b 0d 09 69 66 20 28 |pagesize|);..if (|
|00001fb0| 21 6e 6f 72 6f 6d 29 09 | 61 62 6f 72 74 5f 6f 6f |!norom).|abort_oo|
|00001fc0| 6d 65 6d 20 28 20 22 5c | 70 49 6e 69 74 5a 38 30 |mem ( "\|pInitZ80|
|00001fd0| 28 29 22 20 29 3b 0d 0d | 2f 2f 20 64 69 73 70 6f |()" );..|// dispo|
|00001fe0| 73 65 20 6f 66 20 6f 6c | 64 20 63 6f 72 65 0d 09 |se of ol|d core..|
|00001ff0| 69 66 20 28 43 4f 52 45 | 5f 4d 29 20 44 69 73 70 |if (CORE|_M) Disp|
|00002000| 6f 73 48 61 6e 64 6c 65 | 28 28 48 61 6e 64 6c 65 |osHandle|((Handle|
|00002010| 29 43 4f 52 45 5f 4d 29 | 3b 0d 09 43 4f 52 45 20 |)CORE_M)|;..CORE |
|00002020| 3d 20 6e 69 6c 3b 20 43 | 4f 52 45 5f 4d 20 3d 20 |= nil; C|ORE_M = |
|00002030| 6e 69 6c 3b 0d 0d 09 66 | 6f 72 20 28 69 3d 6d 61 |nil;...f|or (i=ma|
|00002040| 78 72 6f 6d 70 61 67 65 | 73 3b 69 2d 2d 3b 29 20 |xrompage|s;i--;) |
|00002050| 72 6f 6d 5b 69 5d 20 3d | 20 6e 69 6c 3b 0d 09 66 |rom[i] =| nil;..f|
|00002060| 6f 72 20 28 69 3d 6d 61 | 78 72 61 6d 70 61 67 65 |or (i=ma|xrampage|
|00002070| 73 3b 69 2d 2d 3b 29 20 | 72 61 6d 5b 69 5d 20 3d |s;i--;) |ram[i] =|
|00002080| 20 6e 69 6c 3b 0d 09 66 | 6f 72 20 28 69 3d 34 3b | nil;..f|or (i=4;|
|00002090| 69 2d 2d 3b 29 20 72 70 | 61 67 65 5b 69 5d 20 3d |i--;) rp|age[i] =|
|000020a0| 20 77 70 61 67 65 5b 69 | 5d 20 3d 20 6e 6f 72 6f | wpage[i|] = noro|
|000020b0| 6d 2d 69 2a 70 61 67 65 | 73 69 7a 65 3b 09 2f 2f |m-i*page|size;.//|
|000020c0| 20 66 61 69 6c 20 73 61 | 66 65 20 70 6f 69 6e 74 | fail sa|fe point|
|000020d0| 65 72 73 0d 0d 2f 2a 20 | 61 6c 6c 6f 63 61 74 65 |ers../* |allocate|
|000020e0| 20 72 6f 6d 20 61 6e 64 | 20 72 61 6d 20 70 61 67 | rom and| ram pag|
|000020f0| 65 73 3a 0d 09 7a 78 5f | 34 38 6b 3a 09 43 4f 52 |es:..zx_|48k:.COR|
|00002100| 45 2b 30 78 30 30 30 30 | 09 3d 20 72 6f 6d 5b 30 |E+0x0000|.= rom[0|
|00002110| 5d 09 3d 20 72 70 61 67 | 65 5b 30 5d 0d 09 09 09 |].= rpag|e[0]....|
|00002120| 43 4f 52 45 2b 30 78 34 | 30 30 30 09 3d 20 72 61 |CORE+0x4|000.= ra|
|00002130| 6d 5b 31 5d 09 3d 20 72 | 70 61 67 65 5b 31 5d 0d |m[1].= r|page[1].|
|00002140| 09 09 09 43 4f 52 45 2b | 30 78 38 30 30 30 09 3d |...CORE+|0x8000.=|
|00002150| 20 72 61 6d 5b 32 5d 09 | 3d 20 72 70 61 67 65 5b | ram[2].|= rpage[|
|00002160| 32 5d 0d 09 09 09 43 4f | 52 45 2b 30 78 43 30 30 |2]....CO|RE+0xC00|
|00002170| 30 09 3d 20 72 61 6d 5b | 33 5d 20 09 3d 20 72 70 |0.= ram[|3] .= rp|
|00002180| 61 67 65 5b 33 5d 0d 09 | 0d 09 7a 78 5f 31 32 38 |age[3]..|..zx_128|
|00002190| 3a 09 43 4f 52 45 2b 30 | 78 30 30 30 30 09 3d 20 |:.CORE+0|x0000.= |
|000021a0| 72 6f 6d 5b 30 5d 09 3d | 20 72 70 61 67 65 5b 30 |rom[0].=| rpage[0|
|000021b0| 5d 0d 09 09 09 43 4f 52 | 45 2b 30 78 34 30 30 30 |]....COR|E+0x4000|
|000021c0| 09 3d 20 72 61 6d 5b 35 | 5d 09 3d 20 72 70 61 67 |.= ram[5|].= rpag|
|000021d0| 65 5b 31 5d 0d 09 09 09 | 43 4f 52 45 2b 30 78 38 |e[1]....|CORE+0x8|
|000021e0| 30 30 30 09 3d 20 72 61 | 6d 5b 32 5d 09 3d 20 72 |000.= ra|m[2].= r|
|000021f0| 70 61 67 65 5b 32 5d 0d | 09 09 09 43 4f 52 45 2b |page[2].|...CORE+|
|00002200| 30 78 43 30 30 30 09 3d | 20 72 61 6d 5b 30 5d 20 |0xC000.=| ram[0] |
|00002210| 09 3d 20 72 70 61 67 65 | 5b 33 5d 0d 2a 2f 0d 23 |.= rpage|[3].*/.#|
|00002220| 69 66 20 21 47 45 4e 45 | 52 41 54 49 4e 47 50 4f |if !GENE|RATINGPO|
|00002230| 57 45 52 50 43 20 0d 2f | 2f 09 70 75 74 20 72 6f |WERPC ./|/.put ro|
|00002240| 6d 5b 30 5d 20 61 6e 64 | 20 72 61 6d 5b 31 2e 2e |m[0] and| ram[1..|
|00002250| 2e 33 5d 20 72 65 73 70 | 2e 20 72 61 6d 5b 35 2f |.3] resp|. ram[5/|
|00002260| 32 2f 30 5d 20 69 6e 20 | 61 20 6d 65 6d 6f 72 79 |2/0] in |a memory|
|00002270| 20 62 6c 6f 63 6b 20 61 | 6c 69 67 6e 65 64 20 74 | block a|ligned t|
|00002280| 6f 20 61 20 6d 75 6c 74 | 69 70 6c 65 20 6f 66 20 |o a mult|iple of |
|00002290| 30 78 31 30 30 30 30 0d | 2f 2f 09 61 64 64 69 74 |0x10000.|//.addit|
|000022a0| 69 6f 6e 61 6c 20 72 61 | 6d 20 61 6e 64 20 72 6f |ional ra|m and ro|
|000022b0| 6d 20 69 73 20 6c 6f 63 | 61 74 65 64 20 70 68 79 |m is loc|ated phy|
|000022c0| 73 69 63 61 6c 6c 79 20 | 62 65 66 6f 72 65 20 70 |sically |before p|
|000022d0| 6f 69 6e 74 65 72 20 43 | 4f 52 45 20 21 21 21 0d |ointer C|ORE !!!.|
|000022e0| 09 43 4f 52 45 5f 4d 20 | 3d 20 28 43 68 61 72 2a |.CORE_M |= (Char*|
|000022f0| 2a 29 54 65 6d 70 4e 65 | 77 48 61 6e 64 6c 65 20 |*)TempNe|wHandle |
|00002300| 28 28 72 6f 6d 73 2b 72 | 61 6d 73 29 2a 70 61 67 |((roms+r|ams)*pag|
|00002310| 65 73 69 7a 65 2b 30 78 | 31 30 30 31 30 2c 26 65 |esize+0x|10010,&e|
|00002320| 72 72 29 3b 0d 09 69 66 | 20 28 21 43 4f 52 45 5f |rr);..if| (!CORE_|
|00002330| 4d 7c 7c 65 72 72 29 20 | 61 62 6f 72 74 5f 6f 6f |M||err) |abort_oo|
|00002340| 6d 65 6d 20 28 20 22 5c | 70 49 6e 69 74 5a 38 30 |mem ( "\|pInitZ80|
|00002350| 28 29 22 20 29 3b 0d 09 | 48 4c 6f 63 6b 28 28 48 |()" );..|HLock((H|
|00002360| 61 6e 64 6c 65 29 43 4f | 52 45 5f 4d 29 3b 0d 09 |andle)CO|RE_M);..|
|00002370| 43 4f 52 45 20 3d 20 2a | 43 4f 52 45 5f 4d 2b 28 |CORE = *|CORE_M+(|
|00002380| 72 6f 6d 73 2b 72 61 6d | 73 29 2a 70 61 67 65 73 |roms+ram|s)*pages|
|00002390| 69 7a 65 3b 0d 09 43 4f | 52 45 20 2d 3d 20 28 53 |ize;..CO|RE -= (S|
|000023a0| 68 6f 72 74 29 43 4f 52 | 45 3b 0d 09 6d 65 6d 73 |hort)COR|E;..mems|
|000023b0| 65 74 20 28 20 43 4f 52 | 45 2b 30 78 31 30 30 30 |et ( COR|E+0x1000|
|000023c0| 30 2c 20 31 39 39 2c 20 | 30 78 31 30 20 29 3b 20 |0, 199, |0x10 ); |
|000023d0| 09 09 2f 2f 20 72 73 74 | 20 30 0d 09 41 42 43 3d |..// rst| 0..ABC=|
|000023e0| 41 44 45 3d 41 48 4c 3d | 41 49 58 3d 41 49 59 3d |ADE=AHL=|AIX=AIY=|
|000023f0| 41 50 43 3d 41 53 50 3d | 43 4f 52 45 3b 09 2f 2f |APC=ASP=|CORE;.//|
|00002400| 20 73 65 74 75 70 20 68 | 69 67 68 20 77 6f 72 64 | setup h|igh word|
|00002410| 73 20 6f 66 20 72 65 67 | 69 73 74 65 72 20 70 6f |s of reg|ister po|
|00002420| 69 6e 74 65 72 73 0d 23 | 65 6c 73 65 0d 2f 2f 20 |inters.#|else.// |
|00002430| 73 69 6d 70 6c 65 20 61 | 6c 6c 6f 63 61 74 69 6f |simple a|llocatio|
|00002440| 6e 20 69 6e 20 50 6f 77 | 65 72 50 43 20 76 65 72 |n in Pow|erPC ver|
|00002450| 73 69 6f 6e 0d 09 43 4f | 52 45 5f 4d 20 3d 20 28 |sion..CO|RE_M = (|
|00002460| 43 68 61 72 2a 2a 29 54 | 65 6d 70 4e 65 77 48 61 |Char**)T|empNewHa|
|00002470| 6e 64 6c 65 20 28 28 72 | 6f 6d 73 2b 72 61 6d 73 |ndle ((r|oms+rams|
|00002480| 29 2a 70 61 67 65 73 69 | 7a 65 2c 26 65 72 72 29 |)*pagesi|ze,&err)|
|00002490| 3b 0d 09 69 66 20 28 21 | 43 4f 52 45 5f 4d 7c 7c |;..if (!|CORE_M|||
|000024a0| 65 72 72 29 20 61 62 6f | 72 74 5f 6f 6f 6d 65 6d |err) abo|rt_oomem|
|000024b0| 20 28 20 22 5c 70 49 6e | 69 74 5a 38 30 28 29 22 | ( "\pIn|itZ80()"|
|000024c0| 20 29 3b 0d 09 48 4c 6f | 63 6b 28 28 48 61 6e 64 | );..HLo|ck((Hand|
|000024d0| 6c 65 29 43 4f 52 45 5f | 4d 29 3b 0d 09 43 4f 52 |le)CORE_|M);..COR|
|000024e0| 45 20 3d 20 2a 43 4f 52 | 45 5f 4d 20 2b 20 28 72 |E = *COR|E_M + (r|
|000024f0| 6f 6d 73 2b 72 61 6d 73 | 2d 34 29 2a 70 61 67 65 |oms+rams|-4)*page|
|00002500| 73 69 7a 65 3b 09 2f 2f | 20 74 6f 20 6d 69 6d 69 |size;.//| to mimi|
|00002510| 63 20 36 38 6b 20 76 65 | 72 73 69 6f 6e 0d 23 65 |c 68k ve|rsion.#e|
|00002520| 6e 64 69 66 0d 0d 2f 2f | 20 69 6e 69 74 69 61 6c |ndif..//| initial|
|00002530| 69 7a 65 20 72 6f 6d 5b | 5d 20 61 6e 64 20 72 61 |ize rom[|] and ra|
|00002540| 6d 5b 5d 0d 09 73 77 69 | 74 63 68 20 28 7a 38 30 |m[]..swi|tch (z80|
|00002550| 5f 68 61 72 64 77 61 72 | 65 29 0d 09 7b 0d 09 63 |_hardwar|e)..{..c|
|00002560| 61 73 65 20 7a 78 5f 34 | 38 6b 3a 0d 09 09 72 6f |ase zx_4|8k:...ro|
|00002570| 6d 5b 30 5d 20 3d 20 43 | 4f 52 45 3b 0d 09 09 72 |m[0] = C|ORE;...r|
|00002580| 61 6d 5b 31 5d 20 3d 20 | 43 4f 52 45 2b 30 78 34 |am[1] = |CORE+0x4|
|00002590| 30 30 30 3b 0d 09 09 72 | 61 6d 5b 32 5d 20 3d 20 |000;...r|am[2] = |
|000025a0| 43 4f 52 45 2b 30 78 38 | 30 30 30 3b 0d 09 09 72 |CORE+0x8|000;...r|
|000025b0| 61 6d 5b 33 5d 20 3d 20 | 43 4f 52 45 2b 30 78 63 |am[3] = |CORE+0xc|
|000025c0| 30 30 30 3b 0d 09 09 62 | 72 65 61 6b 3b 0d 09 63 |000;...b|reak;..c|
|000025d0| 61 73 65 20 7a 78 5f 31 | 32 38 3a 0d 09 09 72 6f |ase zx_1|28:...ro|
|000025e0| 6d 5b 30 5d 20 3d 20 43 | 4f 52 45 3b 0d 09 09 72 |m[0] = C|ORE;...r|
|000025f0| 61 6d 5b 35 5d 20 3d 20 | 43 4f 52 45 2b 30 78 34 |am[5] = |CORE+0x4|
|00002600| 30 30 30 3b 0d 09 09 72 | 61 6d 5b 32 5d 20 3d 20 |000;...r|am[2] = |
|00002610| 43 4f 52 45 2b 30 78 38 | 30 30 30 3b 0d 09 09 72 |CORE+0x8|000;...r|
|00002620| 61 6d 5b 30 5d 20 3d 20 | 43 4f 52 45 2b 30 78 63 |am[0] = |CORE+0xc|
|00002630| 30 30 30 3b 0d 09 09 70 | 3d 43 4f 52 45 3b 0d 09 |000;...p|=CORE;..|
|00002640| 09 72 6f 6d 5b 31 5d 20 | 3d 20 70 2d 3d 70 61 67 |.rom[1] |= p-=pag|
|00002650| 65 73 69 7a 65 3b 0d 09 | 09 66 6f 72 20 28 69 3d |esize;..|.for (i=|
|00002660| 30 3b 69 3c 72 61 6d 73 | 3b 69 2b 2b 29 20 69 66 |0;i<rams|;i++) if|
|00002670| 20 28 21 72 61 6d 5b 69 | 5d 29 20 72 61 6d 5b 69 | (!ram[i|]) ram[i|
|00002680| 5d 20 3d 20 70 2d 3d 70 | 61 67 65 73 69 7a 65 3b |] = p-=p|agesize;|
|00002690| 0d 09 09 62 72 65 61 6b | 3b 0d 09 7d 0d 0d 2f 2f |...break|;..}..//|
|000026a0| 20 69 6e 69 74 69 61 6c | 69 7a 65 20 72 70 61 67 | initial|ize rpag|
|000026b0| 65 5b 5d 2c 20 77 70 61 | 67 65 5b 5d 0d 09 66 6f |e[], wpa|ge[]..fo|
|000026c0| 72 20 28 69 3d 34 3b 69 | 2d 2d 3b 29 09 72 70 61 |r (i=4;i|--;).rpa|
|000026d0| 67 65 5b 69 5d 20 3d 20 | 77 70 61 67 65 5b 69 5d |ge[i] = |wpage[i]|
|000026e0| 20 3d 20 43 4f 52 45 3b | 0d 09 77 70 61 67 65 5b | = CORE;|..wpage[|
|000026f0| 30 5d 20 3d 20 6e 6f 72 | 6f 6d 3b 0d 0d 2f 2f 20 |0] = nor|om;..// |
|00002700| 69 6e 69 74 20 7a 38 30 | 20 72 65 67 69 73 74 65 |init z80| registe|
|00002710| 72 73 3a 0d 09 7a 72 65 | 67 2e 66 66 32 20 3d 20 |rs:..zre|g.ff2 = |
|00002720| 7a 72 65 67 2e 61 61 32 | 20 3d 20 7a 72 65 67 2e |zreg.aa2| = zreg.|
|00002730| 66 66 20 3d 20 7a 72 65 | 67 2e 61 61 20 3d 20 30 |ff = zre|g.aa = 0|
|00002740| 3b 09 2f 2f 20 63 6c 65 | 61 72 20 68 69 67 68 20 |;.// cle|ar high |
|00002750| 62 79 74 65 73 20 6f 66 | 20 41 2f 41 32 20 61 6e |bytes of| A/A2 an|
|00002760| 64 20 46 2f 46 32 0d 09 | 42 43 3d 44 45 3d 48 4c |d F/F2..|BC=DE=HL|
|00002770| 3d 49 58 3d 49 59 3d 50 | 43 3d 53 50 3d 42 43 32 |=IX=IY=P|C=SP=BC2|
|00002780| 3d 44 45 32 3d 48 4c 32 | 3d 30 3b 09 2f 2f 20 63 |=DE2=HL2|=0;.// c|
|00002790| 6c 65 61 72 20 72 65 67 | 69 73 74 65 72 73 0d 09 |lear reg|isters..|
|000027a0| 52 41 3d 52 41 32 3d 52 | 46 3d 52 46 32 3d 52 52 |RA=RA2=R|F=RF2=RR|
|000027b0| 3d 52 49 3d 30 3b 0d 09 | 49 46 46 31 09 3d 20 49 |=RI=0;..|IFF1.= I|
|000027c0| 46 46 32 20 3d 20 64 69 | 73 61 62 6c 65 64 3b 09 |FF2 = di|sabled;.|
|000027d0| 09 09 09 09 2f 2f 20 64 | 69 73 61 62 6c 65 20 69 |....// d|isable i|
|000027e0| 6e 74 65 72 72 75 70 74 | 73 0d 09 49 4d 09 3d 20 |nterrupt|s..IM.= |
|000027f0| 31 3b 09 09 09 09 09 09 | 09 09 2f 2f 20 69 6e 74 |1;......|..// int|
|00002800| 65 72 72 75 70 74 20 6d | 6f 64 65 20 3a 3d 20 31 |errupt m|ode := 1|
|00002810| 09 0d 09 57 55 46 46 3d | 20 30 3b 09 09 09 09 09 |...WUFF=| 0;.....|
|00002820| 09 09 09 2f 2f 20 63 6c | 65 61 72 20 69 72 70 74 |...// cl|ear irpt|
|00002830| 2c 20 6e 6d 69 0d 09 45 | 58 49 54 09 3d 20 30 3b |, nmi..E|XIT.= 0;|
|00002840| 09 09 09 09 09 09 09 09 | 2f 2f 20 63 6c 65 61 72 |........|// clear|
|00002850| 20 77 61 74 63 68 64 6f | 67 0d 09 49 52 50 54 43 | watchdo|g..IRPTC|
|00002860| 4d 44 20 3d 20 30 78 66 | 66 3b 09 09 09 09 09 09 |MD = 0xf|f;......|
|00002870| 2f 2f 20 62 79 74 65 20 | 72 65 61 64 20 66 72 6f |// byte |read fro|
|00002880| 6d 20 62 75 73 20 69 6e | 20 69 6d 30 20 6f 72 20 |m bus in| im0 or |
|00002890| 69 6d 32 20 6d 6f 64 65 | 0d 0d 2f 2f 20 62 75 69 |im2 mode|..// bui|
|000028a0| 6c 64 20 66 6c 61 67 20 | 74 61 62 6c 65 73 3a 0d |ld flag |tables:.|
|000028b0| 2f 2f 20 5a 38 30 3a 09 | 25 53 5a 2d 48 2d 56 4e |// Z80:.|%SZ-H-VN|
|000028c0| 43 09 2d 2d 2d 20 48 20 | 26 20 4e 20 69 67 6e 6f |C.--- H |& N igno|
|000028d0| 72 65 64 0d 2f 2f 20 6d | 36 38 3a 09 25 2d 2d 2d |red.// m|68:.%---|
|000028e0| 58 53 5a 56 43 09 2d 2d | 2d 20 58 20 69 67 6e 6f |XSZVC.--|- X igno|
|000028f0| 72 65 64 0d 2f 2f 20 74 | 68 65 20 75 6e 75 73 65 |red.// t|he unuse|
|00002900| 64 20 66 6c 61 67 73 20 | 63 6f 72 72 65 73 70 6f |d flags |correspo|
|00002910| 6e 64 20 61 73 20 66 6f | 6c 6c 6f 77 73 3a 20 20 |nd as fo|llows: |
|00002920| 20 7a 38 30 7b 25 2d 2d | 31 48 32 2d 4e 2d 7d 20 | z80{%--|1H2-N-} |
|00002930| 20 3d 3d 20 20 6d 36 38 | 7b 25 31 48 32 4e 2d 2d | == m68|{%1H2N--|
|00002940| 2d 2d 7d 09 20 20 20 31 | 31 2e 31 32 2e 39 34 20 |--}. 1|1.12.94 |
|00002950| 4b 49 4f 20 21 0d 09 66 | 6f 72 20 28 69 3d 30 3b |KIO !..f|or (i=0;|
|00002960| 20 69 3c 32 35 36 3b 20 | 69 2b 2b 29 0d 09 7b 09 | i<256; |i++)..{.|
|00002970| 0d 09 7a 6c 6f 67 5f 66 | 6c 61 67 73 5b 69 5d 09 |..zlog_f|lags[i].|
|00002980| 3d 20 28 69 26 30 78 38 | 30 29 20 2b 20 28 28 69 |= (i&0x8|0) + ((i|
|00002990| 3d 3d 30 29 3c 3c 36 29 | 20 2b 20 28 20 20 28 20 |==0)<<6)| + ( ( |
|000029a0| 28 7e 69 2b 28 69 3e 3e | 31 29 2b 28 69 3e 3e 32 |(~i+(i>>|1)+(i>>2|
|000029b0| 29 2b 28 69 3e 3e 33 29 | 2b 28 69 3e 3e 34 29 2b |)+(i>>3)|+(i>>4)+|
|000029c0| 28 69 3e 3e 35 29 2b 28 | 69 3e 3e 36 29 2b 28 69 |(i>>5)+(|i>>6)+(i|
|000029d0| 3e 3e 37 29 29 26 31 20 | 29 20 3c 3c 20 32 20 20 |>>7))&1 |) << 2 |
|000029e0| 29 3b 0d 23 69 66 20 21 | 47 45 4e 45 52 41 54 49 |);.#if !|GENERATI|
|000029f0| 4e 47 50 4f 57 45 52 50 | 43 0d 09 6d 6c 6f 67 5f |NGPOWERP|C..mlog_|
|00002a00| 66 6c 61 67 73 5b 69 5d | 09 3d 20 28 28 69 3e 3d |flags[i]|.= ((i>=|
|00002a10| 31 32 38 29 3c 3c 33 29 | 20 2b 20 28 28 69 3d 3d |128)<<3)| + ((i==|
|00002a20| 30 29 3c 3c 32 29 20 2b | 20 28 20 20 28 20 28 7e |0)<<2) +| ( ( (~|
|00002a30| 69 2b 28 69 3e 3e 31 29 | 2b 28 69 3e 3e 32 29 2b |i+(i>>1)|+(i>>2)+|
|00002a40| 28 69 3e 3e 33 29 2b 28 | 69 3e 3e 34 29 2b 28 69 |(i>>3)+(|i>>4)+(i|
|00002a50| 3e 3e 35 29 2b 28 69 3e | 3e 36 29 2b 28 69 3e 3e |>>5)+(i>|>6)+(i>>|
|00002a60| 37 29 29 26 31 20 29 20 | 3c 3c 20 31 20 20 29 3b |7))&1 ) |<< 1 );|
|00002a70| 0d 09 7a 38 30 66 6c 61 | 67 73 5b 69 5d 09 3d 20 |..z80fla|gs[i].= |
|00002a80| 28 28 69 3c 3c 34 29 26 | 30 78 63 30 29 20 2b 20 |((i<<4)&|0xc0) + |
|00002a90| 28 28 69 3c 3c 31 29 26 | 34 29 20 2b 20 28 69 26 |((i<<1)&|4) + (i&|
|00002aa0| 31 29 20 20 20 2b 20 20 | 20 28 28 69 3e 3e 32 29 |1) + | ((i>>2)|
|00002ab0| 26 30 78 33 38 29 20 2b | 20 28 28 69 3e 3e 33 29 |&0x38) +| ((i>>3)|
|00002ac0| 26 32 29 3b 0d 09 6d 36 | 38 66 6c 61 67 73 5b 69 |&2);..m6|8flags[i|
|00002ad0| 5d 09 3d 20 28 28 69 3e | 3e 34 29 26 30 78 30 63 |].= ((i>|>4)&0x0c|
|00002ae0| 29 20 2b 20 28 28 69 3e | 3e 31 29 26 32 29 20 2b |) + ((i>|>1)&2) +|
|00002af0| 20 28 69 26 31 29 20 20 | 20 2b 20 20 20 28 28 69 | (i&1) | + ((i|
|00002b00| 3c 3c 32 29 26 30 78 65 | 30 29 20 2b 20 28 28 69 |<<2)&0xe|0) + ((i|
|00002b10| 3c 3c 33 29 26 30 78 31 | 30 29 3b 0d 23 65 6e 64 |<<3)&0x1|0);.#end|
|00002b20| 69 66 0d 09 7d 3b 0d 09 | 0d 2f 2f 20 69 6e 69 74 |if..};..|.// init|
|00002b30| 69 61 6c 69 7a 65 20 72 | 61 6e 64 6f 6d 20 67 65 |ialize r|andom ge|
|00002b40| 6e 65 72 61 74 6f 72 20 | 66 6f 72 20 72 20 72 65 |nerator |for r re|
|00002b50| 67 69 73 74 65 72 0d 09 | 47 65 74 44 61 74 65 54 |gister..|GetDateT|
|00002b60| 69 6d 65 28 28 75 6e 73 | 69 67 6e 65 64 20 6c 6f |ime((uns|igned lo|
|00002b70| 6e 67 2a 29 26 71 64 2e | 72 61 6e 64 53 65 65 64 |ng*)&qd.|randSeed|
|00002b80| 29 3b 0d 7d 0d 0d 0d 0d | 0d 0d 0d 0d 0d 0d 0d 00 |);.}....|........|
|00002b90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ba0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002bb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002bc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002bd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002be0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002bf0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002c00| 00 00 01 00 00 00 01 54 | 00 00 00 54 00 00 00 46 |.......T|...T...F|
|00002c10| 00 12 4e 69 6b 69 00 00 | 00 1e 00 00 ff ff 00 00 |..Niki..|........|
|00002c20| 00 00 00 00 00 00 00 00 | ff ff 00 00 00 08 01 09 |........|........|
|00002c30| 0a 49 6e 69 74 5f 5a 38 | 30 2e 63 01 02 00 00 00 |.Init_Z8|0.c.....|
|00002c40| 50 61 72 74 53 49 54 21 | 00 00 00 00 00 00 00 00 |PartSIT!|........|
|00002c50| 00 00 50 61 72 74 53 49 | 54 21 00 00 00 00 00 00 |..PartSI|T!......|
|00002c60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002c70| 00 00 ac d6 17 bc 00 00 | 00 00 00 00 01 9a 08 61 |........|.......a|
|00002c80| bd 00 00 2c 9f 00 00 41 | 84 00 18 87 dc 00 04 61 |...,...A|.......a|
|00002c90| cb 00 00 2c 1e 00 00 62 | 43 00 00 4b ff ff 8c 63 |...,...b|C..K...c|
|00002ca0| 6d 00 00 7c 0d 78 40 80 | 61 00 a8 32 94 00 01 7c |m..|.x@.|a..2...||
|00002cb0| 94 98 00 7e 10 18 14 41 | 84 ff 08 40 81 00 68 62 |...~...A|...@..hb|
|00002cc0| 2d 00 00 48 00 00 60 62 | cb 00 00 63 03 00 00 48 |-..H..`b|...c...H|
|00002cd0| 00 00 14 40 81 00 08 62 | 2d 00 00 62 cb 00 00 63 |...@...b|-..b...c|
|00002ce0| 03 00 00 2c 15 00 00 62 | 84 00 00 41 81 00 10 4b |...,...b|...A...K|
|00002cf0| fe c1 31 80 41 00 14 60 | 75 00 00 7d ad b8 14 7c |..1.A..`|u..}...||
|00002d00| 00 00 00 48 00 09 47 65 | 6e 65 76 61 00 00 00 00 |...H..Ge|neva....|
|00002d10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002d20| 00 00 00 00 00 00 00 03 | 00 04 00 31 00 25 02 88 |........|...1.%..|
|00002d30| 02 0a 00 31 00 25 02 88 | 02 0a ac d4 fa e0 00 00 |...1.%..|........|
|00002d40| 05 ff 00 00 05 ff 00 00 | 03 f3 01 00 00 00 00 04 |........|........|
|00002d50| 00 01 00 01 00 00 01 00 | 00 00 01 54 00 00 00 54 |........|...T...T|
|00002d60| 00 00 00 46 00 9d a6 48 | 12 5e 00 00 00 1c 00 46 |...F...H|.^.....F|
|00002d70| 00 01 4d 50 53 52 00 00 | 00 12 4d 57 42 42 00 00 |..MPSR..|..MWBB..|
|00002d80| 00 1e 03 ed ff ff 00 00 | 00 00 00 00 00 00 03 f0 |........|........|
|00002d90| ff ff 00 00 00 4c 00 00 | 00 00 00 00 00 00 00 00 |.....L..|........|
|00002da0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002db0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002dc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002dd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002de0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002df0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+